Appian Platform (CS) Helm Chart

A Helm chart for deploying the Appian platform on Kubernetes. This Helm chart is supplied by Appian Customer Success via the Appian App Market.

This chart deploys a custom resource of type appian that is managed by the Appian Operator.

Introduction

This chart facilitates the deployment of Appian sites through templated support for common options while baking-in best practice configurations.

Prerequisites

The Config Generator tool from Appian Kubernetes Utilities, available from the Appian App Market, can help you prepare these prerequisites.

Usage

Review templated custom resource specification

Want to see what custom resource specification your values file would produce? You can preview your Appian custom resource manifest by preparing your values file and running the following:

Note: You need to substitute the placeholder CHART_VERSION with the version of chart you are using. A YAML file that specifies the values for the parameters must be provided (e.g. values.yaml).

Or if you have already deployed the chart to your Helm repository:

Note: You need to substitute the placeholders REGISTRY_NAME and REPOSITORY_NAME with a reference to your Helm chart registry and repository. A YAML file that specifies the values for the parameters must be provided (e.g. values.yaml).

Deploying or restarting the Appian site (Installing the chart)

To install the chart with the release name $SITE_NAME:

Note: You need to substitute the placeholders REGISTRY_NAME and REPOSITORY_NAME with a reference to your Helm chart registry and repository. A YAML file that specifies the values for the parameters must be provided (e.g. values.yaml) while installing the chart.

Stopping the Appian site (Deleting the chart)

To stop the Appian site with the release name $SITE_NAME:

This will not delete the Persistent Volume Claims nor the associated RDBMS and as such leaves the site's data in place ready for when the site is next started again.

Upgrading or hotfixing the Appian site

To upgrade the Appian site to a new major version, or to hoftix the site with newer container images for the same major version:

  1. Stop the Appian site (Ensure the site stops cleanly with all checkpoints completed).

  2. Update the value of url in your values file to reference your new target version

  3. Start the Appian site

Ensure you check the operator release notes and platform release notes before upgrading an Appian site and provision the relevant container images and Operator Helm chart in your container registry.

Upgrading this Helm chart

To upgrade to a later version of this Helm chart, ensure you check the Release Notes for any changes. Before upgrading, use the helm template command to compare the output generated by the new version of the chart with your existing configuration.

Example values files

This section provides some sample values files illustrating certain configuration options.

Note: These few examples are not exhaustive and do not represent all possible configurations.

Example 1 - Non-HA, MariaDB, AWS Load Balancer

Spec overview:

Example 2 - HA, MySQL, NGINX

Spec overview:

Limitations

A number of fields in the Custom Resource are immutable. These must not be modified for a running site, so any Helm upgrades to the chart must avoid changing these values. To be able to change these immutable fields, the Appian site needs to be stopped (by deleting the chart) and restarted (by installing the chart with updated values).

As version is one of these immutable fields, Appian hotfixes and major version upgrades cannot be applied using helm upgrade and require the site to be stopped and restarted as above.

T-Shirt Sizing

This Helm chart uses a class parameter to apply default values for a range of size- and scaling-related parameters, which can then be fine-tuned using component-level overrides. An appropriate t-shirt size should be chosen as a starting configuration. Performance testing should be used to determine whether to change class or, alternatively, to override certain parameters set by class templates.

For example, a site with higher process throughput may require larger Kafka storage and additional resources for just the execution engines - which can be achieved by overriding just those parameters, while all other relevant parameters are left as set by the chosen class.

The table below provides very rough guidelines for each class, including the expected resources required to run each size.

ClassPurposeResources Required (Non-HA)Resources Required (HA)
x-smallDevelopment or Single Application8 CPU / 64 GB RAM
115 GB RWO
100 GB RWX (Logs)
CPU / RAM x3
186 GB RWO
200 GB RWX (Logs) / 100 GB RWX (Data)
smallDevelopment or Single Application16 CPU / 128 GB RAM
115 GB RWO
100 GB RWX (Logs)
CPU / RAM x3
186 GB RWO
200 GB RWX (Logs) / 100 GB RWX (Data)
mediumDepartmental adoption24 CPU / 192 GB RAM
150 GB RWO
150 GB RWX (Logs)
CPU / RAM x3
291 GB RWO
300 GB RWX (Logs) / 200 GB RWX (Data)
largeEnterprise adoption48 CPU / 384 GB RAM
210 GB RWO
200 GB (Logs)
CPU / RAM x3
342 GB RWO
400 GB RWX (Logs) / 300 GB RWX (Data)
x-largeEnterprise adoption64 CPU / 512 GB RAM
210 GB RWO
200 GB (Logs)
CPU / RAM x3
342 GB RWO
400 GB RWX (Logs) / 300 GB RWX (Data)

Assumes 3 Exec/Analytics shards without RPA or AI. Initial sizing only. Performance testing / observation and resource request / compute right-sizing is required.

Parameters

General parameters

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
siteNamestring""Appian site name. Must match the wildcard pattern of the licenses provided. See request licenses. This field is immutable.truemetadata.name
versionstring""The Low-Code Platform (LCP) version. This field will be required in a future release. This field is immutable.truespec.version
urlstring""The scheme, host, and, optionally, port used to access Appian (e.g. https://appian.example.com, http://appian.example.com:32767, etc). For sites with a single Webapp replica, updating this field requires restarting Webapp's pod.truespec.url
staticUrlstring""The scheme, host, and, optionally, port for Appian's static content URL (e.g. https://appian.example-static.com, http://appian.example-static.com:32767, etc). The scheme must be the same as that defined in spec.url. Must use a different domain from spec.url and dynamicUrl. For sites with a single Webapp replica, updating this field requires restarting Webapp's pod. See Configure Your Static and Dynamic Content URLs for more info.falsespec.webapp.staticUrl
dynamicUrlstring""The scheme, host, and, optionally, port for Appian's dynamic content URL (e.g. https://appian.example-dynamic.com, http://appian.example-dynamic.com:32767, etc). The scheme must be the same as that defined in spec.url. Must use a different domain from spec.url and staticUrl. For sites with a single Webapp replica, updating this field requires restarting Webapp's pod. See Configure Your Static and Dynamic Content URLs for more info.falsespec.webapp.dynamicUrl
classenum""One of "x-small", "small", "medium", "large", "x-large".
Changing class after an initial deployment will not automatically affect all sizings driven by it (e.g. disk volume sizes will not change). This field is immutable.
See class.
trueMultiple fields across all components.
enableCpuLimitsboolfalseDetermines whether to apply CPU limits to pods. By default, no CPU limits are set. Setting this field to true will apply the class's defaults for each pod type, unless overridden by defaultCpuLimits or [component].resources.limits.cpu. When CPU limits are enabled (when enableCpuLimits: true), the order of precedence for each component is 1. Component-level CPU limits override, 2. Global defaultCpuLimits, 3. Class CPU limits.falsespec.[component]
.resources.limits.cpu
defaultCpuLimitsint or stringnilDefault CPU limits to set if not disabling CPU limits and not using the built-in class's CPU limits. Only applied if enableCpuLimits: true. Can be overridden for a specific component by setting [component].resources.limits.cpu.falsespec.[component]
.resources.limits.cpu
enableResourceRequestsbooltrueWhen set to false this sets CPU and Memory resource requests to 0 for each component. Overrides all other configurations for these fields.
Only used when running on small, dedicated worker nodes. Must be used in conjunction with nodeSelector (see T-Shirt Sizing).
falsespec.[component]
.resources.requests.cpu
spec.[component]
.resources.requests.memory
highAvailabilityboolfalseDetermines whether the environment will be deployed in a High Availability (HA) configuration.
Changing highAvailability after an initial deployment will not automatically change the topology of the site. This field is immutable.
falseMultiple fields across all components.
passwordsPropertiesSecretNamestring""Name of an existing secret containing Appian's passwords.properties file.
If using an authenticated SMTP server, the file should contain conf.password.SMTP=$YOUR_SMTP_PASSWORD_HERE
For sites with a single Webapp replica, updating this field requires restarting Webapp's pod.
false
Required when smtp.auth is true.
spec.webapp
.passwordsPropertiesSecretName
metricsAuthTokenstring""Base64 encoded password for authenticating to the Appian self-managed monitoring metrics API. Setting this field automatically sets two custom properties: metricsauthtoken (to this value) and appian.feature.selfManagedMonitoring (to true). See Self-Managed Monitoring for details of this solution.falsespec.customProperties
additionalCustomPropertiesobject{}Additional custom properties in addition to those set by the chart automatically. See Custom Properties for more info. Note: Do not set any custom properties here that are set by this chart by default. Doing so will result in duplicate entries for that property under spec.customProperties.falsespec.customProperties
nodeSelectorobject{}A selector which must be true for the components' pod(s) to fit on a node. See nodeSelector for more info. Can be overridden for a specific component by setting [component].nodeSelector.falsespec.[component]
.nodeSelector
securityContextobject{}Container-level security context applied to all components. Passthrough to corev1.SecurityContext. See securityContext for more info. Can be overridden for a specific component by setting [component].securityContext.falsespec.[component]
.securityContext
podSecurityContextobject{}Pod-level security context applied to all components. Passthrough to corev1.PodSecurityContext. Requires Appian Operator v0.200.0+. Can be overridden for a specific component by setting [component].podSecurityContext.falsespec.[component]
.podSecurityContext
rbacobject{}Configuration for creating RBAC resources.falsespec.rbac
networkPoliciesobject{}Configuration for creating network policy resources.falsespec.networkPolicies
additionalLabelsobject{}Additional labels for created objects - including pods. For stateful components with a single replica, updating this field requires restarting the component's pod.falsespec.additionalLabels
cascadeVersionToComponentTagsboolfalseWhether to set [component].image.tag to the value of version. Only required if using the Appian Migration Tool, which enforces that {component}.image.tag is present.falsespec.[component].image.tag

License parameters

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
license.k3SecretNamestring"k3lic"Name of the existing secret containing the k3.lic file. Defaults to k3lic. For sites with a single replica of service-manager, updating this field requires restarting all service-manager pods.truespec.k3LicSecretName
license.k4SecretNamestring"k4lic"Name of the existing secret containing the k4.lic file. Defaults to k4lic. For sites with a single Data Service replica, updating this field requires restarting Data Service's pod.truespec.k4LicSecretName
appianConfigMapNamestring"appian-lic"Name of the existing config map containing the appian.lic file.truespec.appianLicConfigMapName

Storage parameters

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
storage.rwoStorageClassNamestring""Name of an existing Storage Class for provisioning ReadWriteOnce (RWO) storage for the Appian stateful pods.
Changing rwoStorageClassName after an initial deployment will not automatically change the storage class of the provisioned RWO volumes.
truespec.[component]
.volumeClaimTemplateSpec.storageClassName
storage.sharedLogsPvcstring""Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Appian shared logs (aka Health Check) storage. Must differ from haSharedDataPvc. This field is immutable. See Persistent Volumes for more info.false
[Not required but strongly recommended for all environments]
spec.webapp.healthCheckExistingClaim
storage.haSharedDataPvcstring""Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for shared data. Must differ from sharedLogsPvc. Required for HA environments. For non-HA environments that may be converted to HA in future, setting this field from the start (in addition to storage.sharedLogsPvc) makes it easier to convert the environment. This field cannot be set after initial creation of an environment without manual data copy operations! This field is immutable. See Persistent Volumes for more info.false
Required when highAvailability is true.
spec.webapp.haExistingClaim, spec.serviceManager.haExistingClaim

Images parameters

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
images.pullSecretslist[]Names of existing image pull secrets. See Pull an Image from a Private Registry for more info.falsespec.imagePullSecrets
images.appian.repositorystring""The URL to which /[component] can be added to reference each of the Appian component container images (e.g. my.container.registry.com/appian)truespec.[component]
.image.repository
images.minimal.repositorystringbusyboxThe path to the minimal container image to use where required. This should be the full image path (e.g. my.container.registry.com/alpine or busybox). Required if not disabling the built-in Search Server init container (via searchServer.setVmMaxMapCount: false).falseAny init containers configured by the chart (e.g. Search Server vm max map count init container)
images.minimal.tagstring""The tag to use for the minimal image. Required if not disabling the built-in Search Server init container (via searchServer.setVmMaxMapCount: false).falseAny init containers configured by the chart (e.g. Search Server vm max map count init container)

SMTP parameters

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
smtp.senderAddressstring""The address that will appear as the sender (the "From" address) of notification and password reset emails from the systemfalsespec.customProperties
smtp.senderDomainstring""The domain (portion after the "@") for the "from" email address for addresses created via expressions functions; also applies to the domain for alert emails when the custom property conf.mailhandler.ntf_sndr_addr is not setfalsespec.customProperties
smtp.hoststring""The host is the FQDN, hostname, or IP address of the SMTP server for sending email from the system. Muliple SMTP servers can be specified using a comma-separated list. They will be tried in the order specified. If a port other than 25 is required, append it to the hostname (e.g. mailhost3:9025). If this is not set, no email will be sent from the system. The Helm chart will not add SMTP-related custom properties if smtp.host is not set.falsespec.customProperties
smtp.authboolfalseSet to true if user/password authentication to the SMTP server is used. Leave the default (false) to indicate that the SMTP server does not require authentication. If multiple SMTP servers are defined above, the same auth settings will apply to all serversfalsespec.customProperties
smtp.userstring""The username used to connect to the SMTP serverfalsespec.customProperties
smtp.protocolstring"smtp"The protocol should be set to either smtp or smtps.falsespec.customProperties
smtp.starttlsEnabledstring""You can enable or require STARTTLS with the smtp protocol. Setting smtp.starttlsEnabled to true will cause outgoing mail to use STARTTLS if supported by the remote server, but will fall back to plain smtp otherwisefalsespec.customProperties
smtp.starttlsRequiredstring""Setting smtp.starttlsRequired to true will cause mail to fail if the remote server does not support STARTTLSfalsespec.customProperties

Data Sources parameters

The datasources field allows primary and business data sources to be configured with ease via built-in templates for each supported RDBMS.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
dataSources.primaryData Source Template object{}The data source for the Appian primary database. See Data Source Template parameters. Ignored if webapp.dataSources is provided!truespec.webapp
.dataSources.primary
dataSources.businessData Source Template list[]Optional business data sources. List of Data Source Template. Ignored if webapp.dataSources is provided!falsespec.webapp
.dataSources.primary

Data Source Template parameters

The following parameters are available for dataSources.primary and for each item in the list dataSources.business. The chart's Data Source Templates make it simpler to apply the correct configurations for each data source with fewer, simpler parameters to be configured.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
namestring""The JNDI name for the data source (e.g. jdbc/AppianPrimary).truespec.webapp.dataSources
.[primary/business.[]].name
dbTypestring""One of "mariadb", "mysql", "mysql-aurora", "oracle", "mssql", "postgresql", "postgresql-aurora", "db2".truespec.webapp.dataSources
.[primary/business.[]].driverClassName
spec.webapp.dataSources
.[primary/business.[]].url
dbServerAndPortstring""The server and port for the target database (e.g. my.database.com:3306).truespec.webapp.dataSources
.[primary/business.[]].url or
spec.webapp.dataSources
.[primary/business.[]].url
schemaNamestring""The schema name for the target database. For Oracle this is the service name. For MS SQL this is the database name. E.g. appian_primarytruespec.webapp.dataSources
.[primary/business.[]].url or
spec.webapp.dataSources
.[primary/business.[]].url
urlParametersstring""A string of appropriately separated connection string query parameters.
For MySQL and MariaDB do not include useOldAliasMetadataBehavior (this is prepended by the chart).
For MSSQL do not include databaseName or socketTimeout (these are prepended by the chart).
Do not include leading ?, ; or & at the start.
falsespec.webapp.dataSources
.[primary/business.[]].url or
spec.webapp.dataSources
.[primary/business.[]].url
usernameSecretKeyRef.namestring""Name of an existing secret holding the username used to connect to the data source (e.g. appian-primary-ds).truespec.webapp.dataSources
.[primary/business.[]].usernameSecretKeyRef.name
usernameSecretKeyRef.keystring""Key within the existing secret dataSources.primary.usernameSecretKeyRef.name holding the username used to connect to the data source (e.g. username).truespec.webapp.dataSources
.[primary/business.[]].usernameSecretKeyRef.key
passwordSecretKeyRef.namestring""Name of an existing secret holding the password used to connect to the data source (e.g. appian-primary-ds).truespec.webapp.dataSources
.[primary/business.[]].passwordSecretKeyRef.name
passwordSecretKeyRef.keystring""Key within the existing secret dataSources.primary.passwordSecretKeyRef.name holding the password used to connect to the data source (e.g. password).truespec.webapp.dataSources
.[primary/business.[]].passwordSecretKeyRef.key
attributesobject{}Optionally replaces the default set of attributes in spec.webapp.dataSources.[primary/business.[]].attributes. If not provided, the chart applies the default set of attributes as defined in Configuring Relational Databases.falsespec.webapp.dataSources
.[primary/business.[]].attributes

Ingress Template parameters

The ingressTemplate field allows an ingress to be configured with ease via built-in templates for 4 popular ingress controllers: NGINX Ingress Controller, AWS Load Balancer Controller, Azure Application Gateway Ingress Controller (AGIC) and OpenShift Default ingress controller. These templates apply standard annotations required for each ingress class.

If you are using another ingress controller, configure this using Ingress instead.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
ingressTemplate.namestring""One of "nginx", "alb", "agic", "openshift-default".
The ingress template to apply.
truespec.ingress.ingressClassName
ingressTemplate
.certificateReference
string""For alb, this is the certificate-arn.
For agic this is appgw-ssl-certificate
falsespec.ingress.annotations
ingressTemplate
.additionalAnnotations
object{}Annotations to configure in addition to those deployed by the chosen ingress template.falsespec.ingress.annotations
ingressTemplate
.tls
list[]Configuration for TLS. Not necessary if using ingressTemplate.certificateReference for alb or agic. See TLS for more info.falsespec.ingress.tls
ingressTemplate
.hostname
string""The hostname used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in url.falsespec.ingress.hostname
ingressTemplate
.staticHostname
string""The hostname for Appian's static content URL used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in staticUrl.falsespec.ingress.staticHostname
ingressTemplate
.dynamicHostname
string""The hostname for Appian's dynamic content URL used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in dynamicUrl.falsespec.ingress.dynamicHostname
ingressTemplate
.healthcheck.intervalSeconds
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.healthcheck.path
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.healthcheck.port
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.healthcheck.protocol
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.healthcheck.timeoutSeconds
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.healthcheck.healthyThresholdCount
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.healthcheck.unhealthyThresholdCount
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.listenPorts
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.loadBalancerName
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.scheme
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.usePrivateIp
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.trustedRootCertificate
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.successCodes
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.targetType
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations
ingressTemplate
.requestTimeout
string""Override ingress template value if chosen template applies this value.falsespec.ingress.annotations

Replication parameters

The replication parameters enable a site to be configured for Kafka real-time transaction replication via MirrorMaker for Kafka mirroring. The site can be configured either as a replication source or destination using these parameters.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
replication.mirrorMaker.modestring""One of source, destination.
Setting replication.mirrorMaker.mode to source configures this site's Kafka component to expose listeners for a destination site to replicate transactions.
Setting replication.mirrorMaker.mode to destination configures this site's MirrorMaker component to deploy the site in replication mode.
falsespec.kafka (when replication.mirrorMaker.mode is source)
spec.mirrorMaker (when replication.mirrorMaker.mode is destination)
replication.mirrorMaker.listenerslist[]List of externally addressable Kafka hosts in the source site, used by MirrorMaker in the destination site. The order of the listeners must match the order of Kafka's pods.false
Required when replication.mirrorMaker.mode is set.
spec.kafka.mirrorMakerListeners (when replication.mirrorMaker.mode is source)
spec.mirrorMaker.sourceBrokers (when replication.mirrorMaker.mode is destination)

Per-Component overrides and additional parameters

Overrides for fields set automatically based on general parameters (e.g. via class) and additional optional parameters can be specified at component-level.

Zookeeper

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
zookeeper.minHeapstring""Override the environment variable ZK_HEAP_MIN set by class.falsespec.zookeeper.env
zookeeper.maxHeapstring""Override the environment variable ZK_HEAP_MAX set by class.falsespec.zookeeper.env
zookeeper.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.zookeeper
.volumeClaimTemplateSpec.resources
.requests.storage
zookeeper.resources.requests.cpuint or string""Override the component's CPU requests set by class.falsespec.zookeeper
.resources.requests.cpu
zookeeper.resources.limits.cpuint or string""Override the component's CPU limits set by class.falsespec.zookeeper
.resources.limits.cpu
zookeeper.resources.requests.memoryint or string""Override the component's memory requests set by class.falsespec.zookeeper
.resources.requests.memory
zookeeper.resources.limits.memoryint or string""Override the component's memory limits set by class.falsespec.zookeeper
.resources.limits.memory
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Kafka

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
kafka.minHeapstring""Override the environment variable KAFKA_HEAP_MIN set by class.falsespec.kafka.env
kafka.maxHeapstring""Override the environment variable KAFKA_HEAP_MAX set by class.falsespec.kafka.env
kafka.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.kafka
.volumeClaimTemplateSpec.resources
.requests.storage
kafka.resources.requests.cpuint or string""Override the component's CPU requests set by class.falsespec.kafka
.resources.requests.cpu
kafka.resources.limits.cpuint or string""Override the component's CPU limits set by class.falsespec.kafka
.resources.limits.cpu
kafka.resources.requests.memoryint or string""Override the component's memory requests set by class.falsespec.kafka
.resources.requests.memory
kafka.resources.limits.memoryint or string""Override the component's memory limits set by class.falsespec.kafka
.resources.limits.memory
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Search Server

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
searchServer.heapstring""Override the environment variable SS_HEAP set by class.falsespec.searchServer.env
searchServer.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.searchServer
.volumeClaimTemplateSpec.resources
.requests.storage
searchServer.resources.requests.cpuint or string""Override the component's CPU requests set by class.falsespec.searchServer
.resources.requests.cpu
searchServer.resources.limits.cpuint or string""Override the component's CPU limits set by class.falsespec.searchServer
.resources.limits.cpu
searchServer.resources.requests.memoryint or string""Override the component's memory requests set by class.falsespec.searchServer
.resources.requests.memory
searchServer.resources.limits.memoryint or string""Override the component's memory limits set by class.falsespec.searchServer
.resources.limits.memory
searchServer.setVmMaxMapCountbooleantrueDeploys a privileged init container to set the worker node kernel's vm.max_map_count value to the required setting.falsespec.searchServer.initContainers
additionalInitContainerslist[]A list of initialization containers belonging to the component to deploy in addition to the default init container configured by the chart for the Search Server kernel setting. For stateful components with a single replica, updating this field requires restarting the component's pod. See Init Containers for more info.falsespec.[component].initContainers
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Data Service

Note that the Data Service object is called dataServer in the Appian CRD.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
dataServer.classenum""One of "x-small", "small", "medium", "large", "x-large". Overrides the value of class only for the Data Service component. Used to scale Data Service independently of other platform components (for example for sites with higher or lower Data Fabric usage).
Changing dataServer.class after an initial deployment will not automatically affect all sizings driven by it (e.g. disk volume sizes will not change). This field is immutable.
See T-Shirt Sizes.
falseMultiple fields across all components.
dataServer.rts.countintnilOverride the RTS count set by class. Updating this field requires restarting both Data Service's and Webapp's pods. See Real-time Store and Configuring the Data Service for more info.falsespec.dataServer.topology.rtsCount
dataServer.rts
.threads
intnilOverride the value of the custom property ads.adb.systemConfig__.rts.threads. This property is automatically defaulted in line with the chosen class's default RTS count. Only use this field to override the built-in default. See Configuring the real-time store for guidance.falsespec.customProperties
.ads.adb.systemConfig__.rts.threads
dataServer.rts
.memoryLimit
string""Override the value of the custom property ads.adb.systemConfig__.rts.memory_limit. This property is automatically defaulted in line with the chosen class's default RTS count. Only use this field to override the built-in default. See Configuring the real-time store for guidance.falsespec.customProperties
.ads.adb.systemConfig__.rts.memory_limit
dataServer.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.dataServer
.volumeClaimTemplateSpec.resources
.requests.storage
dataServer.resources.requests.cpuint or string""Override the component's CPU requests set by class.falsespec.dataServer
.resources.requests.cpu
dataServer.resources.limits.cpuint or string""Override the component's CPU limits set by class.falsespec.dataServer
.resources.limits.cpu
dataServer.resources.requests.memoryint or string""Override the component's memory requests set by class.falsespec.dataServer
.resources.requests.memory
dataServer.resources.limits.memoryint or string""Override the component's memory limits set by class.falsespec.dataServer
.resources.limits.memory
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Service Manager

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
serviceManager.replicasintnilOverride the number of replicas for service manager set by highAvailability. Defaults to 1 for non-high availability and 3 for high availability. Updating this field is disallowed both before Appian has started and when highAvailability is not true.falsespec.serviceManager.replicas
serviceManager.komodoDirectMemMaxstring""Override the environment variable KOMODO_DIRECT_MEM_MAX set by class.falsespec.serviceManager.env
serviceManager.komodoHeapMaxstring""Override the environment variable KOMODO_HEAP_MAX set by class.falsespec.serviceManager.env
serviceManager.maxExecEngineLoadMetricint120Override the value of the custom property server.conf.processcommon.MAX_EXEC_ENGINE_LOAD_METRIC. This property is defaulted to 120.falsespec.customProperties
.server.conf.processcommon.MAX_EXEC_ENGINE_LOAD_METRIC
serviceManager.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.serviceManager
.volumeClaimTemplateSpec.resources
.requests.storage
serviceManager.analyticsExecShardCountint3Override the number of shards of the process analytics and process execution engines. This field is immutable. See Add Execution and Analytics Shards for more info.falsespec.serviceManager
.topology.analyticsExecShardCount
serviceManager.exec.resources.requests.cpuint or string""Override the execution engines' CPU requests set by class.falsespec.serviceManager
.engineOverrides.execution
.resources.requests.cpu
serviceManager.exec.resources.limits.cpuint or string""Override the execution engines' CPU limits set by class.falsespec.serviceManager
.engineOverrides.execution
.resources.requests.cpu
serviceManager.exec.resources.requests.memoryint or string""Override the execution engines' memory requests set by class.falsespec.serviceManager
.engineOverrides.execution
.resources.requests.memory
serviceManager.exec.resources.limits.memoryint or string""Override the execution engines' memory limits set by class.falsespec.serviceManager
.engineOverrides.execution
.resources.limits.memory
serviceManager.analytics.resources.requests.cpuint or string""Override the analytics engines' CPU requests set by class.falsespec.serviceManager
.engineOverrides.analytics
.resources.requests.cpu
serviceManager.analytics.resources.limits.cpuint or string""Override the analytics engines' CPU limits set by class.falsespec.serviceManager
.engineOverrides.analytics
.resources.requests.cpu
serviceManager.analytics.resources.requests.memoryint or string""Override the analytics engines' memory requests set by class.falsespec.serviceManager
.engineOverrides.analytics
.resources.requests.memory
serviceManager.analytics.resources.limits.memoryint or string""Override the analytics engines' memory limits set by class.falsespec.serviceManager
.engineOverrides.analytics
.resources.limits.memory
serviceManager.tier2.resources.requests.cpuint or string""Override the CPU requests for the groups, collaboration and process design engines set by class.falsespec.serviceManager
.engineOverrides.[groups|content|processDesign]
.resources.requests.cpu
serviceManager.tier2.resources.limits.cpuint or string""Override the CPU limits for the groups, collaboration and process design engines set by class.falsespec.serviceManager
.engineOverrides.[groups|content|processDesign]
.resources.requests.cpu
serviceManager.tier2.resources.requests.memoryint or string""Override the memory requests for the groups, collaboration and process design engines set by class.falsespec.serviceManager
.engineOverrides.[groups|content|processDesign]
.resources.requests.memory
serviceManager.tier2.resources.limits.memoryint or string""Override the the memory limits for the groups, collaboration and process design engines set by class.falsespec.serviceManager
.engineOverrides.[groups|content|processDesign]
.resources.limits.memory
serviceManager.default.resources.requests.cpuint or string""Override the default CPU requests used by all other engines set by class.falsespec.serviceManager
.resources.requests.cpu
serviceManager.default.resources.limits.cpuint or string""Override the default CPU limits used by all other engines set by class.falsespec.serviceManager
.resources.limits.cpu
serviceManager.default.resources.requests.memoryint or string""Override the default memory requests used by all other engines set by class.falsespec.serviceManager
.resources.requests.memory
serviceManager.default.resources.limits.memoryint or string""Override the the memory limits used by all other engines set by class.falsespec.serviceManager
.resources.limits.memory
serviceManager.engineOverridesobject{}Allows complete override of all per-engine configurations set by class.
Used in the scenario where you require complete granular control over every engine type's CPU and memory configuration. To set the engineOverrides field for the first time, generate the CR spec without engineOverrides set using helm template and then use the output value of engineOverrides in the generated CR spec as the starting value for your Helm values engineOverrides field. This way, you start with the current engine-level configurations for your chosen class and can adjust them accordingly.
See Engine Overrides for more info.
falsespec.serviceManager.engineOverrides
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Webapp

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
webapp.replicasintnilOverride the number of replicas for webapp set by highAvailability. When set, this field also sets the httpd component's replicas to match. Updating this field is disallowed both before Appian has started and when highAvailability is not true.falsespec.webapp.replicas
spec.httpd.replicas
webapp.minHeapstring""Set the custom property conf.appserver.minHeapSize.falsespec.customProperties
webapp.maxHeapstring""Override the custom property conf.appserver.maxHeapSize set by class.falsespec.customProperties
webapp.autodeleteArchivesDelayDaysstring"30"Override the custom property server.conf.processcommon.AUTODELETE_ARCHIVES_DELAY_DAYS set automatically by the chart. This setting defines when archived processes will automatically be deleted, both from the Process Activity monitor view, and the .l files themselves.falsespec.customProperties
webapp.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.webapp
.volumeClaimTemplateSpec.resources
.requests.storage
webapp.resources.requests.cpuint or string""Override the component's CPU requests set by class.falsespec.webapp
.resources.requests.cpu
webapp.resources.limits.cpuint or string""Override the component's CPU limits set by class.falsespec.webapp
.resources.limits.cpu
webapp.resources.requests.memoryint or string""Override the component's memory requests set by class.falsespec.webapp
.resources.requests.memory
webapp.resources.limits.memoryint or string""Override the component's memory limits set by class.falsespec.webapp
.resources.limits.memory
webapp.dataSourcesobject{}Override completely the webapp data source configuration set via templates by dataSources.primary and dataSources.business.falsespec.webapp.dataSources
webapp.additionalInitContainerslist[]A list of initialization containers belonging to the component to deploy in addition to any default init containers configured by the chart. If no default init containers would be deployed, this field has the same effect as webapp.initContainers. For stateful components with a single replica, updating this field requires restarting the component's pod. See Init Containers for more info.falsespec.webapp.initContainers
webapp.customLoggersCustom Logger list[]A list of Custom Logger to be applied to webapp components. Implements the Customizing Application Logging pattern. If set, this chart deploys an additional ConfigMap appian-log4j-override-properties and mounts it to all webapp pods.falsespec.webapp.additionalVolumes
spec.webapp.additionalVolumeMounts
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Httpd

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
httpd.replicasintnilOverride the number of replicas for httpd set by highAvailability or webapp.replicas.falsespec.httpd.replicas
httpd.resources.requests.cpuint or string""Override the component's CPU requests set by class.falsespec.httpd
.resources.requests.cpu
httpd.resources.limits.cpuint or string""Override the component's CPU limits set by class.falsespec.httpd
.resources.limits.cpu
httpd.resources.requests.memoryint or string""Override the component's memory requests set by class.falsespec.httpd
.resources.requests.memory
httpd.resources.limits.memoryint or string""Override the component's memory limits set by class.falsespec.httpd
.resources.limits.memory
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

MirrorMaker

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
mirrorMaker.resourcesobject{}Compute resources required by the component's container(s). See Resource Management for Pods and Containers for more info.falsespec.mirrorMaker.resources
mirrorMaker.sourceBrokerslist[]Override the value set by replication.mirrorMaker.listeners. List of hosts that point to the Kafka brokers in the source cluster. Updating this field requires restarting MirrorMaker's pod(s).falsespec.mirrorMaker.sourceBrokers
mirrorMaker.storageSizestring""Override the size of the component's RWO volumes set by class. Changing this value after an initial deployment will not automatically resize the volumes. This field is immutable.falsespec.mirrorMaker
.volumeClaimTemplateSpec.resources
.requests.storage
Common Additional Parameters  (Members of Common Additional Parameters are embedded into this type)  

Common Additional Parameters

The following optional parameters can be specified for any component listed above.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
[component].initContainerslist[]A list of initialization containers belonging to the component. Initialization containers satisfy a variety of use cases - including supplying RDBMS/JDBC drivers. For stateful components with a single replica, updating this field requires restarting the component's pod. See Init Containers for more info. For a component that has a [component].additionalInitContainers parameter, [component].initContainers will override any init containers that are automatically configured by the chart.falsespec.[component].initContainers
[component].envlist[]A list of environment variables to set in the component's container(s). For stateful components with a single replica, updating this field requires restarting the component's pod. See Define Environment Variables for a Container for more info.falsespec.[component].env
[component].additionalVolumeslist[]Additional volumes for the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod. See Volumes for more info.falsespec.[component].additionalVolumes
[component].additionalVolumeMountslist[]Additional volume mounts for the component's container(s). For stateful components with a single replica, updating this field requires restarting the component's pod. See Volumes for more info.falsespec.[component].additionalVolumeMounts
[component].sidecarContainerslist[]Sidecar containers for the component's container(s). For stateful components with a single replica, updating this field requires restarting the component's pod.falsespec.[component].sidecarContainers
[component].nodeSelectorobject{}A selector which must be true for the component's pod(s) to fit on a node. For stateful components with a single replica, updating this field requires restarting the component's pod. See nodeSelector for more info.falsespec.[component].nodeSelector
[component].tolerationslist[]Tolerations for the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod. See Taints and Tolerations for more info.falsespec.[component].tolerations
[component].additionalNetworkPolicyIngressRuleslist[]Additional ingress rules for the component's network policy. Forbidden when spec.networkPolicies.enabled is false. See Network Policies for more info.falsespec.[component].additionalNetworkPolicyIngressRules
[component].priorityClassNamestring""Priority Class for the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod. See Pod Priority and Preemption for more info.falsespec.[component].priorityClassName
[component].dnsPolicyobject""DNS policy for the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod. This field will default to ClusterFirst if not specified. See Pod DNS Policy for more info.falsespec.[component].dnsPolicy
[component].dnsConfigobject{}DNS Config for the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod. This field is required when DNSPolicy is set to None. If DNS Policy is not specified, then ClusterFirst is used. See Pod DNS Config for more info.falsespec.[component].dnsConfig
[component].podAnnotationsmap[string]string{}Annotations to be applied to the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod.falsespec.[component].podAnnotations
[component].podLabelsmap[string]string{}Labels to be applied to the component's pod(s). For stateful components with a single replica, updating this field requires restarting the component's pod.falsespec.[component].podLabels
[component].serviceAccountobject{}Configuration for the component's service account.falsespec.[component].serviceAccount
[component].securityContextobject{}Container-level security context for the component. Overrides the global securityContext. Passthrough to corev1.SecurityContext.falsespec.[component].securityContext
[component].podSecurityContextobject{}Pod-level security context for the component. Overrides the global podSecurityContext. Passthrough to corev1.PodSecurityContext. Requires Appian Operator v0.200.0+.falsespec.[component].podSecurityContext

Custom Logger

The following parameters are available for each item in the list webapp.customLoggers. The chart's Custom Logger Template makes it simpler to customize application logging. Logging for these custom loggers will be output in the root ~/logs directory of each pod and named {reference}.log. Log rotation is enabled within the settings output in the ConfigMap generated by this chart.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
referencestring""An uppercase underscore separated reference for your logger, containing letters only (e.g. COM_APPIAN_PACKAGE_DEBUG).trueappian-log4j-override-properties
packageNamestring""The package name to be logged (e.g. com.appian.package). Do not include the prefix log4j.logger. in the package name provided.trueappian-log4j-override-properties
loggingLevelstring""The logging level to be logged (e.g. DEBUG).trueappian-log4j-override-properties

Service

By default, a service is configured by the chart with spec.service.type: ClusterIP. Configure this service object for any alternative service configurations.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
serviceobject{}Service defines configuration for creating Appian's service resource. See Service for more info.falsespec.service

Ingress

Ingress for ingress controllers NGINX Ingress Controller, AWS Load Balancer Controller and Azure Application Gateway Ingress Controller (AGIC) can be configured via ingressTemplate. For any other ingress controller, use ingress below.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
ingressobject{}Configuration for creating Appian's ingress resource if not using ingressTemplate. See Ingress for more info.falsespec.ingress

RPA

RPA can be configured for the Appian site via the rpa component. No pre-configured options are included in this Helm chart for RPA at this time. See the sample YAML file, the Custom Resource Definition and the RPA Setup section for RPA configuration options.

KeyTypeDefaultDescriptionRequiredCRD Field(s) Impacted
rpaobject{}Defines configuration for RPA. See RPA for more info.falsespec.service

Managed Custom Properties

The following custom properties are automatically added based on either default configurations, class or driven by values file fields.

ComponentCustom PropertiesDriven By
App Server Heapconf.appserver.maxHeapSizeClass and webapp override field
App Server Heapconf.appserver.minHeapSizewebapp field
SMTPconf.mailhandler.* properties, conf.suite.MAIL_SCHEME and conf.suite.MAIL_SERVER_AND_PORTsmtp fields
Data Serviceads.adb.systemConfig__.rts.memory_limit and ads.adb.systemConfig__.rts.threadsClass and dataServer override field
Process Enginesserver.conf.processcommon.MAX_EXEC_ENGINE_LOAD_METRICDefault value and serviceManager override field
Process Enginesserver.conf.processcommon.AUTODELETE_ARCHIVES_DELAY_DAYSDefault value and webapp override field
Metrics APIappian.feature.selfManagedMonitoring and metricsauthtokenmetricsAuthToken field

Excluded Appian CRD Fields

The following fields from the Appian CRD either cannot be set via this Helm chart, or the value that this Helm chart configures cannot be directly overridden. If you must customise one of these fields, this can be done in the site YAML directly after generating it via helm template.

CRD FieldReason
[component].podDisruptionBudgetPod Disruption Budgets are set by the chart for each component when highAvailability is true.
[component].replicas[component].replicasis set by the chart depending on the value of highAvailability. For service manager, webapp and httpd this value can be overridden. For all other components this value cannot be overridden and will be 1 for non-HA and 3 for HA).
[component].affinityThe Appian operator deploys a default affinity configuration. This cannot be customized for the Service Manager pods without breaking exec/analytics engine shard-level affinity configuration. This chart does not support customizing affinity. This chart does, however, deploy a customised affinity rule for httpd to allow the additional httpd pod that is deployed and terminated on site startup to be scheduled on the same worker as another httpd pod to ensure it can launch and terminate successfully. nodeSelector can still be configured globally and per-component to constrain Pods to nodes with specific labels.
serviceManager.engineOverrides.[engine].replicasEngine type replica count cannot be customised at engine level. They will always use the global serviceManager.replicas value.

Release Notes

2.1.0

BREAKING CHANGES This release includes breaking changes. If upgrading to this version, read these Release Notes carefully before upgrading and use helm template to compare the output with that from your current version to ensure the result is as expected.

Migration example — if your current values contain:

Update to:

The same applies at component level — e.g. httpd.securityContext.fsGroup becomes httpd.podSecurityContext.fsGroup.

2.0.0

BREAKING CHANGES This release includes breaking changes. If upgrading to this version, read these Release Notes carefully before upgrading and use helm tempalate to compare the output with that from your current version to ensure the result is as expected.

Values field restructuring

Some of the fields have been restructured in this release to be more user friendly. The following table provides a guide to help you update your values files to use the new field name.

Old Field NameNew Field NameNotes
[component].cpuRequests[component].resources.requests.cpu 
[component].cpuLimits[component].resources.limits.cpu 
[component].memoryRequests[component].resources.requests.memory 
[component].memoryLimits[component].resources.limits.memory 
disableCpuLimitsenableCpuLimitsDefault functionality is unchanged. CPU limits are disabled by default.
disableResourceRequestsenableResourceRequestsDefault functionality is unchanged. Resource requests are enabled by default.
webapp.minHeapSizewebapp.minHeap 
webapp.maxHeapSizewebapp.maxHeap 
tshirtSizeclass 
images.imagePullSecretsimages.pullSecrets 
k3LicSecretNamelicense.k3SecretName 
k4LicSecretNamelicense.k4SecretName 
appianLicConfigMapNamelicense.appianConfigMapName 
dataSources.mysqlDriverConfigMapNameRemovedRemoved. MySQL driver is now too large to support deployment via ConfigMap
dataServer.rts.queryMemoryCircuitBreakerThresholdBytesRemovedRemoved. From 25.1 the Data Service uses alternative custom properties instead, defaulted based on class and overridden via dataServer.rts.threads and dataServer.rts.memoryLimit.
dataSources.[primary\|business[]].usernamedataSources.[primary\|business[]].usernameSecretKeyRef.name and dataSources.[primary\|business[]].usernameSecretKeyRef.keyData Source Template's username field has been removed in favour of providing the username(s) via a secret.
ingressTemplate.healthcheckIntervalSecondsingressTemplate.healthcheck.intervalSeconds 
ingressTemplate.healthcheckPathingressTemplate.healthcheck.path 
ingressTemplate.healthcheckPortingressTemplate.healthcheck.port 
ingressTemplate.healthcheckProtocolingressTemplate.healthcheck.protocol 
ingressTemplate.healthcheckTimeoutSecondsingressTemplate.healthcheck.timeoutSeconds 
ingressTemplate.healthcheckHealthyThresholdCountingressTemplate.healthcheck.healthyThresholdCount 
ingressTemplate.healthcheckUnhealthyThresholdCountingressTemplate.healthcheck.unhealthyThresholdCount 


Built against Appian operator v0.194.0 and Appian platform 25.4. This chart will work with older and newer versions of the Appian operator (to a minimum of v0.194.0) and Appian platform, but some parameters may not be valid.

1.2.0

Built against Appian operator v0.181.0 and Appian platform 25.3. This chart will work with older and newer versions of the Appian operator (to a minimum of v0.181.0) and Appian platform, but some parameters may not be valid.

1.1.3

Built against Appian operator v0.178.0 and Appian platform 25.3. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

1.1.2

Built against Appian operator v0.173.0 and Appian platform 25.1. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum operator version tested with this Helm chart is v0.159.0.

1.1.1

Built against Appian operator v0.173.0 and Appian platform 25.1. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum operator version tested with this Helm chart is v0.159.0.

1.1.0

Built against Appian operator v0.173.0 and Appian platform 25.1. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum operator version tested with this Helm chart is v0.159.0.

1.0.3

Built against Appian operator v0.166.0 and Appian platform 24.4. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum supported operator version is v0.159.0.

1.0.2

Built against Appian operator v0.166.0 and Appian platform 24.4. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum supported operator version is v0.159.0.

1.0.1

Built against Appian operator v0.166.0 and Appian platform 24.4. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum supported operator version is v0.159.0.

1.0.0

Built against Appian operator v0.166.0 and Appian platform 24.4. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum supported operator version is v0.159.0.

0.1.2

Built against Appian operator v0.161.0 and Appian platform 24.3. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum supported operator version is v0.156.0.

0.1.1

Built against Appian operator v0.161.0 and Appian platform 24.3. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

Minimum supported operator version is now v0.156.0.

0.1.0

First public release.

Built against Appian operator v0.156.0 and Appian platform 24.1. This chart will work with other versions of the Appian operator and platform, both older and newer, but some parameters may not be valid (e.g. spec.rpa was only introduced from v0.156.0).

License

Appian AppMarket (see here)